package trees;

public interface Tree<NodeType extends Comparable<NodeType>> {

	/**
	 * Returns the depth of this tree
	 */
	public int depth();

	/**
	 * Inserts the element into this tree
	 */
	public void insert(NodeType element);

	/**
	 * Returns an iterator over all the elements in this tree
	 */
	public Iterable<NodeType> iterator();

	/**
	 * Returns the highest priority element
	 */
	public NodeType remove(NodeType element);

	/**
	 * Returns the size of this tree
	 */	
	public int size();

}
